Method for retrieving previous input commands to an external program from an editor environment

ABSTRACT

The present invention discloses a method, apparatus, and article of manufacture for enabling interaction with one or more external computer programs from within an editor environment. The method involves passing editor input to the external program, wherein the external program evaluates the input, produces corresponding output, and transmits the output back to the editor. When the editor receives the output, it stores the output in a file and displays it on a computer monitor. By using this method, a user can not only interact with the external program from within the editor environment, but can also create an editor file that stores a listing of the input and output provided to the external program.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is related to co-pending and commonly assigned patentapplication Ser. No. 08/825,200, filed on Mar. 27, 1997, by MichaelGolding, and entitled “A METHOD FOR ENABLING INTERACTION WITH EXTERNALCOMPUTER PROGRAMS FROM AN EDITOR ENVIRONMENT,” now U.S. Pat. No.6,356,954, issued on Mar. 12, 2002, which application is incorporated byreference herein.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention generally relates to command interpreters forcomputer systems, and in particular to a method for retrieving previousinput commands to an external program from an editor environment.

2. Description of Related Art

Most editor programs provide a variety of useful functions for computerusers. These functions may include the ability to organize, store,retrieve, and print information. However, the scope of functionsavailable to the computer user within the editor are limited.

It would be useful, therefore, to make additional functions availablewithin the editor by allowing the user to access one or more programsexternal to the editor. In the prior art, however, most typical editorinput cannot operate as command input to another external program. Thislimitation prevents users from combining the power of the editor withthe extra capabilities of the external program.

Thus, there is a need in the art for a method that allows the computeruser to access external programs from the editor environment.

SUMMARY OF THE INVENTION

To overcome the limitations in the prior art described above, thepresent invention discloses a method, apparatus, and article ofmanufacture for enabling interaction with one or more external computerprograms from within an editor environment. The method involves passingeditor input to the external program, wherein the external programevaluates the input, produces either lines of output or zero lines ofoutput, and transmits the output back to the editor. When the editorreceives the output, it stores the output in a file and displays it on acomputer monitor. By using this method, a user can not only interactwith the external program from within the editor environment, but canalso create an editor file that stores a listing of the input and outputprovided to the external program.

BRIEF DESCRIPTION OF THE DRAWINGS

Referring now to the drawings in which like reference numbers representcorresponding parts throughout:

FIG. 1 is a block diagram that illustrates an exemplary hardwareenvironment of the present invention;

FIGS. 2A-2B is a flowchart showing the steps performed by the computerwhen a user interacts with an external program; and

FIG. 3A through FIG. 3I illustrate one possible embodiment of the userinterface displayed on the monitor according to the present invention.

DETAILED DESCRIPTION OF THE INVENTION

In the following description, reference is made to the accompanyingdrawings which form a part hereof, and in which is shown by way ofillustration specific embodiments in which the invention may bepracticed. It is to be understood that other embodiments may be utilizedand structural changes may be made without departing from the scope ofthe present invention.

FIG. 1 is a block diagram that illustrates an exemplary hardwareenvironment of the present invention. The present invention is typicallyimplemented using a personal computer 10 comprised of a microprocessor,random access memory (RAM), read-only memory (ROM), and othercomponents. It is envisioned that attached to the personal computer 10may be a monitor 12, hard and/or floppy disk drives 14, CD-ROM drives16, printer 18, and other peripherals. Also included in the preferredembodiment may be input devices, for example, a mouse pointing device 20and a keyboard 22.

Those skilled in the art will recognize that the exemplary environmentillustrated in FIG. 1 is not intended to limit the present invention.Indeed, those skilled in the art will recognize that other alternativehardware environments may be used without departing from the scope ofthe present invention.

The personal computer 10 operates under the control of an operatingsystem 24, such as the OS/2™, Windows™, or Macintosh™ operating systems,which is represented in FIG. 1 by the screen display on the monitor 12.The personal computer 10 executes one or more computer programs 26 and28, which are represented in FIG. 1 by the “windows” displayed on themonitor 12, operating under the control of the operating system 24.

Generally, the operating system 24 and the computer programs 26 and 28are tangibly embodied in a computer-readable medium, e.g., one or moreof the fixed and/or removable data storage devices 14 and 16. Both theoperating system 24 and the computer programs 26 and 28 may be loadedfrom the data storage devices 14 and 16 into the random access memory ofthe computer 10 for execution by the microprocessor. Both the operatingsystem 24 and the computer programs 26 and 28 comprise instructionswhich, when read and executed by the microprocessor of the computer 10,causes the computer 10 to perform the steps necessary to execute thesteps or elements of the present invention.

In the preferred embodiment, the computer programs 26 and 28 comprise anenhanced editor 26 and one or more programs 28 external to the editor 26that communicate bidirectionally with the editor 26, although thepresent invention could be used with other types of computer programs aswell. A command within the editor 26 is used to start the user-specifiedexternal program 28 as a peer process or dynamically linked routineunder the editor 26. The editor 26 then communicates bidirectionallywith the external program 28 via, for example, OS/2 pipes or othersimilar mechanisms built into the operating system 24. The editor 26passes input lines to the external program 28 using a standard input andoutput interface or directly through an API. The external program 28evaluates the input lines (which can comprise both commands and data),performs the functions indicated by the input lines, and generates oneor more lines of corresponding output or perhaps generates no output.The external program 28 passes the output lines back to the editor 26for subsequent storage and display. As a result, the full power andflexibility of the editor 26 environment is retained, yet the editor 26also becomes a “session manager” for the external program 28.

In the preferred embodiment, a “LINK” command is used to set up theeditor 26 environment in a mode for operating according to the presentinvention. A pull-down menu is marked by the LINK command, wherein themenu is used to initialize a session with a user-specified externalprogram 28 and to provide access to certain commands described in moredetail below. The menu is removed when an “UNLINK” command is used toremove the editor 26 from the mode for operating according to thepresent invention.

Once activated within the editor 26, the present invention redefines thefollowing keys, key combinations, keywords, and/or menu selectionsduring an active session with the external program 28: INIT <pgm≧,ALT-X, ENTER, CTL-ENTER, PAD-ENTER, CTL-PAD-ENTER, CTL-UP, CTL-DOWN.

The user may assign key combinations in addition to the inventioncommands whose arguments are strings to evaluate. Input and output maythus be directed to the cursor lines or to the bottom of the file. Thisis similar to using a setup macro for the commands of the editor 26.

The INIT <pgm> keywords initialize a new session by identifying the name“pgm” of the external program 28. This command is also available as“Initialize session” command on the pull-down menu.

Entering “=filename” as input to the editor 26 scans a disk file for theprompted lines and sends them to the external program for evaluation.The input and corresponding result lines are written to the editor 26file as if the entire file were copied. An appropriate input file mightbe obtained by saving the file after a session communicating with anexternal program.

The ALT-X key combination exits from current session and returns to thedefault editor 26 key definitions. This command is also available as“Exit session” command on the pull-down menu.

The ENTER key transmits the currently selected line or line block to theexternal program 28, and adds the output lines from the external program28 immediately following the corresponding selected line(s). Thiscommand transmits only input lines, not output lines, in the selectedlines. Input lines are lines that have previously been sent as input andthus are preceded with a prompt. As an alternative, these lines can belines from a previously identified input file. These lines can alsoinclude the arguments of a macro. For example, a pre-assigned keycombination whose argument string is input lines. This command is alsoavailable as “Evaluate in place” on the pull-down menu. If no lines areselected, then the line at the cursor is sent as input. Otherwise allinput (prompted) lines in the block are sent and the cursor position isignored.

The CTL-ENTER key combination transmits the currently selected line orline block to the external program 28, echoes the currently selectedline or line block to the bottom of the editor 26 file, and adds outputfrom the external program 28 at the bottom of the editor 26 file. As analternative, the currently selected lines and the output received fromthe external program can be directed to a pre-assigned alternate editorwindow. This command transmits only input lines, not output lines, inthe selected lines. This command is also available as “Evaluate atbottom”, on the pull-down menu.

Input from a “main” editor 26 session may be sent to the externalprogram 28 and be echoed with corresponding output to another editor 26window rather than echoing the results to the main window, similar tothe process performed by the CTL-ENTER command. There may be also be auser-selectable choice of alternate editor windows.

The PAD-ENTER key combination transmits the currently selected lineblock to the external program 28, and adds output from the externalprogram 28 immediately following the selected lines. In essence, thiscommand echoes the selected line block interleaved with output from theexternal program 28 at the original location in the editor 26 file. Thiscommand also transmits all of the lines, not just input lines, in theselected line block. As an alternative, these lines can be lines from apreviously identified input file. These lines can also include thearguments of a macro. For example, a pre-assigned key combination whoseargument string is input lines. If no lines are marked, then the inputhighlight is removed. This command is also available as “Evaluate block”on the pull-down menu.

The CTL-PAD-ENTER key combination transmits the currently selected lineblock to the external program 28, echoes the currently selected lineblock to the bottom of the editor 26 file, and adds output from theexternal program 28 at the bottom of the editor 26 file. In essence,this command echoes the selected line block interleaved with output fromthe external program 28 at the bottom of the editor 26 file. As analternative, the currently selected lines and the output received fromthe external program can be added to a pre-assigned alternate editorwindow. This command also transmits all of the lines, not just inputlines, in the selected line block. If no lines are marked, then thehighlighted input line is reset at or near (above) the cursor. Thiscommand is also available as “Set retrieve” on the pull-down menu.

The CTL-UP key combination changes the emphasis (using the reverse-videoof the highlight color) to the first highlight line above the currentemphasized input line and echoes the line to the bottom of the editor 26file, In essence, this command moves the input focus or command promptup one line in the editor 26 file and echoes the line at the input focusto the bottom of the editor 26 file. This command is also available as“Retrieve up” on the pull-down menu.

The CTL-DOWN key combination similarly emphasizes and echoes the nexthighlighted line to the bottom of the editor 26 file. In essence, thiscommand moves the input focus or command prompt down one line in theeditor 26 file and echoes the line at the bottom of the editor 26 file.This command is also available as “Retrieve down” on the pull-down menu.

When performing the above-described functions under the presentinvention, inputs to and responses from the external program 28 need tobe synchronized by the editor 26, so that they can be interleaved in thefile being edited by the editor 26 (only when an external program isseen as a separate process). Therefore, the user needs to set either a“delay” or (preferably) an “end-of-response tag” setting. If an externalprogram is run synchronously through a direct API, then the delay andend-of-response tag are not used. The delay specifies a time (inmilliseconds) for the editor 26 to wait between writing to the inputpipe of the external program 28 and reading from the output pipe of theexternal program 28.

The end-of-response tag is a string used by the editor 26 to determinewhen the output pipe of the external program 28 has the last responseline for the previous input to the external program 28. When the stringis set, the editor 26 reads the output pipe of the external program 28in a separate thread, waiting for either the total pipe contents toexactly match the tag, or for the final n+2 bytes in the pipe to matchthe tag preceded by a carriage return and line feed.

If the tag is not seen 1 or 2 seconds after the output pipe of theexternal program 28 stops filling, the editor 26 then repeatedly promptsthe user to ask whether to continue waiting on the read (retry) or stopwaiting for output (cancel). If the user cancels, they should thenchange or remove the tag, and re-enter input (the response from whichwill include “lost” output from previous input) or stop the currentsession and then restart the external program 28 with the proper tag.When a tag is set, the delay setting is used only to increase the timebetween prompts to continue reading.

FIGS. 2A-2B is a flowchart illustrating the operation of the computer 10in accordance with the present invention.

Block 30 represents the computer 10 waiting for input. Block 32 is adecision block that represents the computer 10 determining whether theuser has entered a LINK keyword command to enable the invention. If not,control transfers to Block 34.

Block 34 represents the computer 10 handling other processes andtransferring control back to Block 30.

Block 36 represents the computer 10 activating the invention within theeditor. After activation, control transfers to Block 38.

Block 38 is a decision block that represents the computer 10 determiningwhether the user has entered an UNLINK keyword command to disable theinvention. If so, control transfers to Block 40, which represents thecomputer deactivating the invention.

Block 42 is a decision block that represents the computer 10 determiningwhether the user has entered an INIT<pgm> command to begin a newsession. If not, control transfers to Block 44, which represents thecomputer 10 handling other processes.

Block 46 represents computer 10 initializing a session and specifyingthe name of an external program.

Block 48 is a decision block that represents the computer 10 determiningwhether the user has entered an ALT-X command to exit a session. If so,control transfers to Block 50, which represents computer 10 terminatingthe current session.

Block 52 represents the computer 10 waiting for data. Block 54 is adecision block that represents the computer 10 determining whether theuser has selected a portion of the data displayed on the monitor 12. Ifso, control transfers to Block 56, which represents the computer 10highlighting the desired data.

Block 57 is a decision block that represents the computer 10 determiningwhether the user has typed in a CTL-UP or CTL-DOWN command to move theinput highlight to the previous or next input line 74. If a user doesenter a CTL-UP or CTL-DOWN command, control transfers to Block 58, whichrepresents the computer 10 moving the highlighted portion in the editor26 file and echoing the highlighted portion at the bottom of the screen.

Block 59 is a decision block that represents the computer 10 determiningwhether the user has typed a command or key combination to transmit theblock of lines or cursor line data to a previously defined externalprogram 28. The accelerator keys for transmitting data are ENTER,CTL-ENTER, PAD-ENTER, and CTL-PAD-ENTER. Comparing ENTER to PAD-ENTER,users hit ENTER when they want to transmit only prompted (previouslyinput) lines. Otherwise, to transmit all lines as input, they hitPAD-ENTER. The CTL-UP and CTL-DOWN keys only shift the input focus up ordown one input line 74. Regarding the CTL prefix, CTL instructs thecomputer 10 to echo the currently selected portion to the bottom of theeditor 26 file. The CTL prefix also undoes the last set of changes tothe original input lines. If a user does a transmit, control transfersto Block 60, which represents the computer 10 echoing the selectedportion in the editor 26 file (if so indicated according to the type oftransmit command entered) and performing the transmit function.

Block 62 is a decision block that represents the computer 10 determiningwhether the external program produced output. If so, control transfersto Block 64, which represents the computer 10 receiving that output intothe editor 26 file.

Block 66 represents the computer handling other processes andtransferring control back to Block 52.

FIG. 3A illustrates a pull down menu 68, wherein the menu is used (a) toset up the editor 26 environment using a “LINK” command; (b) to removethe pull down menu using the “UNLINK” command; (c) to initialize a newsession using the “Initialize session” command; and (d) to exit asession using the “Exit session” command.

FIG. 3B represents the computer 10 responding to a “ENTER” keywordcommand where there is no marked block of data. The “ENTER” keyevaluates the cursor line to the external program 28 and adds the output72 from the external program 28 immediately following the correspondingselected input lines. The highlighting is shown as bold text in FIG. 3B.The cursor position is shown as an underscore, “_”. A prompt is added tothe line if it does not already have one. This command transmits onlyinput line 74. Screen (5) shows an input line 74 that has been changedfrom a =101” to “Print a: Print a*10”; screen (6) shows that theexternal program 28 then responds to this changed line. If the cursor isat the bottom of the input screen as shown in screen (3), a new inputprompt is added at the bottom of the screen as shown in screen (4) afterthe ENTER command is entered.

FIG. 3C represents the computer 10 responding to a “CTL-ENTER” keywordcommand where there is no marked block of input. The “CTL-ENTER” keytransmits the current line to the external program 28, echoes this lineto the bottom of the editor 26 file, and adds output 72 from theexternal program 28 at the bottom of the editor 26 file immediatelyfollowing the corresponding echoed lines 76. This command transmits onlyinput lines 74. Between screen (3) and screen (4), the fourth line ofinput was changed from “Print a:Print b” to “Print c*100”, after whichthe CTL-ENTER command acts on the new input to the external program 28as shown in screen (5).

FIG. 3D represents the computer 10 responding to an ENTER keywordcommand where there is a marked block of text in the input to theexternal program 28. In screen (2), the first five lines are marked bythe editor 26 line-blocking facility. The change between screen (2) andscreen (3) shows the effect of the ENTER command on the marked blockinput. Although the cursor is shown on line 4 in screen (2), the cursorcan appear on any line within the marked block. When a user replacespreviously input lines as in screen (4), the resulting outputs replacethe corresponding old outputs by interleaving the outputs as shown inscreen (5). The line blocking remains until the user explicitly unblocksthe input using the editor 26 line blocking facility.

FIG. 3E represents the computer 10 responding to a CTL-ENTER keywordcommand where there is a marked block of input. From screen (1) toscreen (2), the user changed some input lines and marked a blockcontaining them. Screen (3) shows the result of a CTL-ENTER command,with the marked block moved to the bottom with the corresponding outputto the marked input, where there is output to be displayed.

FIG. 3F represents the computer 10 responding to a “PAD-ENTER” keywordcommand. The “PAD-ENTER” key transmits the currently highlighted data 70to the external program 28, and interleaves output 72 from the externalprogram 28 with the selected lines. This command transmits all of thelines 74.

FIG. 3G represents the computer 10 responding to a “CTL-PAD-ENTER”keyword command. The “CTL-PAD-ENTER” key transmits the highlighted data70 to the external program 28, echoes the currently selected line blockto the bottom of the editor 26 file, and interleaves output 72 from theexternal program 28 with the echoed lines 76. This command transmits allof the lines 74.

FIG. 3H represents the computer 10 responding to a “CTL-UP” command. TheCTL-UP key emphasizes the previous input line 74 (shown as bold anditalicized text in screens (2-4)), and echoes the line to the bottom ofthe editor 26 file. In essence, this command moves the input focus orcursor 78 up one line in the editor 26 file, and echoes the line at thebottom of the editor 26 file. The echoed line at the bottom of thescreen may be evaluated as is, or it may be changed and evaluated byusing the ENTER or CTL-ENTER key.

FIG. 3I represents the computer 10 responding to a “CTL-DOWN” command.The CTL-DOWN key combination emphasizes the next input line 74 andechoes the line to the bottom of the editor 26 file. In essence, thiscommand moves the input focus or cursor 78 down one line in the editor26 file, and echoes the line at the bottom of the editor 26 file.

What is claimed is:
 1. A computerized apparatus for interacting with anexternal program from within another program executed by a computer,comprising: a computer; an editor shell, executed by the computer, thatcommunicates bidirectionally with an interpreter external to the editorshell, wherein the editor shell passes input lines to the interpreter,the interpreter evaluates the input lines, the interpreter performs oneor more functions indicated by the input lines, the interpretergenerates a response comprising zero or mote output lines, and theinterpreter passes the output lines back to the editor shell forsubsequent display; wherein the editor shell performs an “Evaluate Bloc”command that submits a selected line block displayed by the editor shellto the interpreter for evaluation and inserts the output lines receivedfrom the interpreter immediately following the selected line blockdisplayed by the editor shell, wherein the editor shell echoes theselected line block interleaved with the output lines received from theinterpreter, and wherein all lines in the selected line block, and notjust input lines, are submitted to the interpreter.
 2. The computerizedapparatus of clam 1, wherein the input lines are preceded with a prompt.3. The computerized apparatus of claim 1, wherein the input lines arelines from a previously identified file.
 4. The computerized apparatusof claim 1, wherein the input lines are arguments of a macro.
 5. Acomputerized apparatus for interacting with an external program fromwithin another program executed by a computer, comprising: a computer;an editor shell, executed by the computer, that communicatesbidirectionally with an interpreter external to the editor shell whereinthe editor shell passes input les to the interpreter, the interpreterevaluates the input lines, the interpreter performs one or morefunctions indicated by the input lines, the interpreter generates aresponse comprising zero or more output lines, and the interpreterpasses the output lines back to the editor shell for subsequent display;wherein the editor shell performs a “Set Retrieve” command that submitsa selected line block displayed by the editor shell to the interpreterand inserts the output lines received from the interpreter at an end ofa file displayed by the editor shell, when the editor shell echoes theselected line block interleaved with the output lines received from theinterpreter at the end of the file, and wherein all lines in theselected line block, and not just input lines, we submitted to theinterpreter.
 6. The computerized apparatus of claim 5, wherein the inputlines and the output lines received from the interpreter are directed toa pre-assigned alternate window.
 7. The computed apparatus of claim 5,wherein the input lines are echoed to the end of the file displayed bythe editor shell, and the output lines received from the interpreter areadded to the end of the file immediately following the echoed input les.8. The computerized apparatus of claim 5, wherein the input lines areechoed to the end of the file displayed by the editor shell and theoutput lines received from the interpreter are added to the end of thefile immediately interleaved with the echoed input lines.
 9. Acomputer-implemented method for interacting with an external programfrom within another program executed by a computer, comprising:communicating bidirectionally between an editor shell executed by acomputer and an interpreter external to the editor shell, comprisingpassing input lines from the editor shell to the interpreter, evaluatingthe input lines in the interpreter, perform one or more functionsindicated by the input lines in the interpreter, generating a responsecomprising zero or more output lines in the interpreter, and passing theoutput lines from the interpreter back to the editor shell forsubsequent display; performing an “Evaluate Block” command that submitsa selected line block displayed by the editor shell to the interpreterfox evaluation and inserts the output lines received from theinterpreter immediately following the selected line block displayed bythe editor shell, wherein the editor shell echoes the selected lineblock interleaved with the output lines received from the interpreter,and wherein all lines in the selected line block, and not just inputlines, are submitted to the interpreter.
 10. The computer-implementedmethod of claim 9, wherein the input lines are preceded with a prompt.11. The computer-implemented method of claim 9, wherein the input linesare lines from a previously identified file.
 12. Thecomputer-implemented method of claim 9, wherein the input lines arearguments of a macro.
 13. A computer-implemented method for interactingwith an external program from within another program executed by acomputer, comprising: communicating bidirectionally between an editorshell executed by a computer and an interpret external to the editorshell, comprising passing input lies from the editor shell to theinterpreter, evaluating the input lines in the interpreter, performingone or more functions indicated by the input lines in the interpreter,generating a response comprising zero or more output lines in theinterpreter, and passing the output lines from the interpreter back tothe editor shell for subsequent display; performing a “Set Retrieve”command that submits a sleeted line block displayed by the editor shellto the interpreter and inserts the output lines received from theinterpreter at an end of a file displayed by the editor shell whereinthe editor shell echoes the selected line block interleaved with theoutput lines received from the interpreter at the end of the file, andwherein all lines in the selected line block, and not just input lines,are submitted to the interpreter.
 14. The computer-implemented method ofclaim 13, wherein the input lines and the output lines received from theinterpreter are directed to a pre-assigned alternate window.
 15. Thecomputer-implemented method of claim 13, wherein the input lines areechoed to the end of the file displayed by the editor shell, and theoutput lines received from the interpreter are added to the end of thefile immediately following the echoed input lines.
 16. Thecomputer-implemented method of claim 13, where the input lines areechoed to the end of the file displayed by the editor shell, and theoutput les received from the interpreter are added to the end of thefile immediately interleaved with the echoed input lines.
 17. An articleof manufacture comprising a program storage medium readable by acomputer having a memory, the medium tangibly embodying one or moreprograms of instructions executable by the computer, to perform methodsteps for interacting with an external program from within anotherprogram executed by a computer, comprising: communicatingbidirectionally between an editor shell executed by a computer and aninterpreter external to the editor shell, comprising passing input linesfrom the editor shell to the interpreter, evaluating the input lines inthe interpreter, performing one or more functions indicated by the inputlines in the interpreter, generating a response comprising zero or moreoutput lines in the interpreter, and passing the output lines from theinterpreter back to the editor shell for subsequent display; performingan “Evaluate Block” command that submits a selected line block displayedby the editor shell to the interpreter for evaluation and inserts theoutput lines received from the interpreter immediately following theselected line block displayed by the editor shell, wherein the editorshell echoes the selected line block interleaved with the output linesreceived from the interpreter, and wherein all lines in the selectedline block, and not just input lines, are submitted to the interpreter.18. The article of manufacture of claim 17, wherein the input lines arepreceded with a prompt.
 19. The article of manufacture of claim 17,wherein the input lines are lines from a previously identified file. 20.The article of manufacture of claim 17, wherein the input lines arearguments of a macro.
 21. An article of manufacture comprising a programstorage medium readable by a computer having a memory, the mediumtangibly embodying one or more programs of instructions executable bythe computer to perform method steps for interacting with an externalprogram from within another program executed by a computer, comprising:communicating bidirectionally between an editor shell executed by acomputer and an interpreter external to the editor shell, comprisingpassing input lines from the editor shell to the interpreter, evaluatingthe input lines in the interpreter, performing one or more functionsindicated by the input lines in the interpreter, generating a responsecomprising zero or more output lines in the interpreter, and passing theoutput lines from the interpreter back to the editor shell forsubsequent display; performing a “Set Retrieve” command that submits aselected line block displayed by the editor shell to the interpreter andinserts the output lines received from the interpreter at an end of afile displayed by the editor shell, where the editor shell echoes theselected lines block interleaved with the output lines received from theinterpreter at the end of the file, and wherein al lines in the selectedline block and nor just input lines, are submitted to the interpreter.22. The article of manufacture of claim 21, wherein the input lies andthe output lines received from the interpreter are directed to apre-assigned alternate window.
 23. The article of manufacture of claim21, wherein the input lines are echoed to the end of the file displayedby the editor shell and the output lines received from the interpreterare added to the end of the file immediately following the echoed inputlines.
 24. The article of manufacture of claim 21, wherein the inputlines are echoed to the end of the file displayed by the editor shell,and the output lines received from the interpreter are added to the endof the file immediately interleaved with the echoed input lines.